-- 修复 vim.notify 冲突的配置文件
-- 解决 Noice.nvim 和其他插件之间的通知冲突

-- 1. 确保 Noice 正确加载并设置通知系统
local function setup_nice_notify()
  -- 等待 Noice 加载完成
  local ok, noice = pcall(require, "noice")
  if ok then
    -- 安全地设置 vim.notify，避免重复覆盖
    if vim.notify ~= noice.notify then
      vim.notify = noice.notify
      vim.notify("✅ Noice 通知系统已启用", vim.log.levels.INFO)
    end
    return true
  end
  return false
end

-- 2. 延迟设置，确保所有插件加载完成
vim.defer_fn(function()
  local success = setup_nice_notify()
  if not success then
    vim.notify("⚠️ Noice 未加载，使用默认通知系统", vim.log.levels.WARN)
  end
end, 100)

-- 3. 创建安全的通知函数
local safe_notify = function(msg, level, opts)
  -- 确保 level 有默认值
  level = level or vim.log.levels.INFO
  opts = opts or {}

  -- 尝试使用 Noice，失败则使用默认系统
  local ok, noice = pcall(require, "noice")
  if ok and noice.notify then
    noice.notify(msg, level, opts)
  else
    -- 回退到 vim.notify
    vim.schedule(function()
      local original_notify = vim.notify or function(...) print(...) end
      original_notify(msg, level, opts)
    end)
  end
end

-- 4. 导出安全的通知函数
_G.safe_notify = safe_notify

-- 5. 调试信息
print("🔧 Notify conflict fix loaded")

return {
  setup_notify = setup_nice_notify,
  safe_notify = safe_notify,
}